Skip to content

docs: visible version + reconstructed CHANGELOG#21

Merged
lapc506 merged 3 commits into
mainfrom
andres/toolkit-readme-version-and-changelog
May 14, 2026
Merged

docs: visible version + reconstructed CHANGELOG#21
lapc506 merged 3 commits into
mainfrom
andres/toolkit-readme-version-and-changelog

Conversation

@lapc506
Copy link
Copy Markdown
Collaborator

@lapc506 lapc506 commented May 14, 2026

Gap this closes

The repo had no visible version anywhere a user would look:

  • README.md — no version line, no badge, no CHANGELOG link.
  • CHANGELOG.md — did not exist.
  • git tag — empty, no v* tags have ever been pushed.

And the three version manifests had drifted on origin/main:

File Before After
package.json 1.12.0 1.14.0
.claude-plugin/plugin.json 1.11.0 1.14.0
.claude-plugin/marketplace.json (top + nested) 1.12.0 1.14.0

This PR is pure docs + version metadata. No .ts, no .sh, no rules.yaml content is touched.

What ships

  1. README headerVersion: 1.14.0 · CHANGELOG · Marketplace right after the H1 so the current version is one glance away.
  2. CHANGELOG.md — full Keep a Changelog reconstruction from 1.1.0 (initial release) through 1.14.0 (this release line). Each entry links its source PR by number.
  3. Manifest alignmentpackage.json, .claude-plugin/plugin.json, and .claude-plugin/marketplace.json all pulled forward to 1.14.0 so they stop disagreeing.

Reconstruction approach

No tags existed, so every version was derived from the package.json value committed at the merge commit of each PR (cross-checked against gh pr list --state merged):

Version Date PR(s) Highlights
1.1.0 2026-03-30 → 2026-04-02 #1, #2, #3 Initial release; takeover-pr; install docs fixes; localization
1.2.0 2026-04-06 /e2e-test-preview Qt previewer + standup fixes
1.2.1 2026-04-12 implement-advisor skill
1.2.2 2026-04-12 → 2026-04-13 #4 Label validation rules; SPOPC roadmap docs
1.3.0 2026-04-17 #5 Inline sub-agent dispatch as primary parallelization
1.3.1 2026-04-17 #6 priority frontmatter (forward-compat)
1.4.0 2026-04-27 → 2026-05-05 #7, #12 /prioritize + /secret-input stash; premortem skill on same line
1.4.1 2026-05-05 #8 Genericize toolkit examples
1.5.0 2026-05-05 → 2026-05-09 #9, #14 Manifest-driven hooks framework; 4 design-system rules on same line
1.6.0 2026-05-09 #13 OpenSpec mandatory (Phase 0)
1.7.0 2026-05-09 #15 4 migration-discipline rules
1.8.0 2026-05-09 #16 warn-curl-mutating-supabase-rest
1.9.0 2026-05-10 #17 5 anti-foot-shoot block rules (Tier 1)
1.10.0 2026-05-10 #18 6 Tier 2 discipline rules + schema extension
1.11.0 2026-05-10 #19 warn-bash-mutation-without-leading-cd
1.12.0 2026-05-13 #20 HITL boundaries + tracker-canonical brief generation
1.13.0 Skipped — no commit ever carried this number
1.14.0 2026-05-14 Atomic-design enforcement hooks (DOJ-4064 Cure 4b) — functional changes ship in a separate PR

Inferences flagged in the file

Follow-ups (not in this PR)

  • Push annotated git tags v1.1.0v1.14.0 so the releases/tag/v* and compare/v1.X...v1.Y URLs in CHANGELOG.md resolve.
  • Adopt a CHANGELOG-driven release workflow going forward: every PR appends an entry under ## [Unreleased] and the version bump promotes that section to a dated heading.
  • Optional: add a scripts/bump-version.sh helper that updates all three manifests + the README version line + promotes the Unreleased entry in one shot. Deferred from this PR to keep scope minimal.

Hard constraints honoured

  • No functional code touched (no .ts, no .sh, no rules.yaml content).
  • Pure docs + version metadata.
  • Keep a Changelog v1.1.0 format strictly followed.
  • Every CHANGELOG entry references its PR by number.
  • No invented commits — only versions present in git log are documented.

DO NOT MERGE

Andrés will review and merge.

Created by Claude Code on behalf of @andres.

lapc506 and others added 3 commits May 14, 2026 08:46
Adds a single-line "Version: 1.14.0 · CHANGELOG · Marketplace" header
right after the H1 so the current version is visible without opening
package.json / plugin.json / marketplace.json. Closes the gap where the
README had no version surface at all.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Adds a Keep-a-Changelog v1.1.0 file covering 1.1.0 → 1.14.0,
reconstructed from `git log` and merged-PR history (no git tags existed
at write time). Each entry links its source PR by number.

Reconstruction notes (also embedded in the file):
- Versions were derived from the package.json value committed at each
  merge — not from inferred SemVer bumps.
- Version 1.13.0 is intentionally skipped; no commit ever carried that
  number (package.json jumped 1.12.0 → 1.14.0 directly).
- A handful of PRs landed without bumping the package version (notably
  PR #14 design-system rules on the 1.5.0 line, PR #12 premortem on the
  1.4.0 line). They are documented under the version line they shipped
  on rather than promoted to their own entry.
- Reference-link footer at bottom assumes git tags will be created
  post-merge by the maintainer. Until then the compare/... and
  releases/tag/... URLs will 404.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Before this commit the three version manifests had drifted apart on
origin/main:
- package.json:     1.12.0
- plugin.json:      1.11.0
- marketplace.json: 1.12.0 (top-level + nested plugins[0].version)

CHANGELOG.md (added in the previous commit) declares 1.14.0 as the
current release line, so the three manifests are pulled forward to
match. The corresponding 1.14.0 functional work (atomic-design
enforcement hooks, schemas/, references/, /atomic-rules-init command)
ships in a separate PR; this PR only synchronises the version
metadata so the manifests stop disagreeing with each other.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 14, 2026

Greptile Summary

This PR introduces a reconstructed CHANGELOG.md covering 1.1.0–1.14.0, adds a visible version line to README.md, and aligns the three previously-drifted version manifests (package.json, plugin.json, marketplace.json) to 1.14.0.

  • CHANGELOG.md (new): Full Keep a Changelog reconstruction from git log and PR history; each entry cites its source PR, and caveats about missing git tags and reconstruction method are documented at the top.
  • Version alignment: plugin.json (was 1.11.0) and marketplace.json (was 1.12.0) are pulled forward to match package.json, stopping three-way drift.
  • Pre-emptive 1.14.0 bump: All manifests are set to 1.14.0, but the functional work that version describes (atomic hooks, schema file, slash command) lives in a separate not-yet-merged PR — creating a window where the published version does not match the actual feature set.

Confidence Score: 3/5

The docs and manifest changes are internally consistent, but all four manifests claim 1.14.0 while none of the 1.14.0 features exist in the repository at this commit.

The CHANGELOG's 1.14.0 entry documents four concrete artifacts — two hook scripts, a schema file, and a slash command — that are not present anywhere in the repository. Merging before the companion functional PR creates a published package that self-describes features that do not exist.

All three manifest files and CHANGELOG.md carry the 1.14.0 version that outpaces the actual codebase; merge ordering relative to the companion functional PR is critical.

Important Files Changed

Filename Overview
CHANGELOG.md New file reconstructing full release history 1.1.0–1.14.0; the 1.14.0 entry documents uncommitted features and contains a non-standard ### Skipped sub-heading.
README.md Adds version badge line with CHANGELOG link; the [Marketplace] hyperlink resolves to the GitHub repo rather than the Claude Code marketplace.
package.json Version bumped 1.12.0 → 1.14.0 pre-emptively before the corresponding functional changes are committed.
.claude-plugin/plugin.json Version bumped 1.11.0 → 1.14.0 to align with package.json; same pre-emptive bump concern applies.
.claude-plugin/marketplace.json Both top-level and nested plugin version entries bumped 1.12.0 → 1.14.0; same pre-emptive bump concern.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["This PR #21\n(docs + manifest bump)"] --> B["All manifests → 1.14.0\nREADME version line\nCHANGELOG.md created"]
    B --> C{"Companion functional\nPR merged?"}
    C -- "Yes" --> D["✅ 1.14.0 features present"]
    C -- "No / delayed" --> E["⚠️ Repo claims 1.14.0\nbut features don't exist"]
    style E fill:#ffd6d6,stroke:#c00
    style D fill:#d6ffd6,stroke:#060
Loading
Prompt To Fix All With AI
Fix the following 3 code review issues. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 3
CHANGELOG.md:21-38
**Version 1.14.0 entry documents uncommitted features**

All four manifests are bumped to `1.14.0` in this PR, but every functional artifact the CHANGELOG attributes to that version — `hooks/atomic/pre-atomic.sh`, `hooks/atomic/post-atomic-drift.sh`, `schemas/atomic-design-rules.schema.json`, and the `/make-no-mistakes:atomic-rules-init` command — does not exist in the repository at this commit. Anyone who installs from `main` after this merges will receive a package that self-identifies as `1.14.0` but is missing all of its advertised features, and the `package.json` `files` array entry for `schemas/` will silently ship an empty directory. A safer sequencing: keep all manifests at `1.12.0` here and do the version bump in the companion functional PR, or convert the `1.14.0` entry to `[Unreleased]` and promote it only when the functional PR lands.

### Issue 2 of 3
CHANGELOG.md:51-52
**`### Skipped` is not a valid Keep a Changelog sub-heading type**

The Keep a Changelog spec (v1.1.0, which this file claims to follow) defines exactly six section types: Added, Changed, Deprecated, Removed, Fixed, Security. `### Skipped` is non-standard and may confuse changelog parsers. The information is already in the reconstruction note at the top of the file, so this sub-section is redundant.

```suggestion
<!-- 1.13.0 was intentionally skipped — no commit ever carried that number. See the reconstruction note at the top of this file. -->
```

### Issue 3 of 3
README.md:3
**`[Marketplace]` link resolves to the GitHub repo, not the Claude Code marketplace**

The label implies a marketplace listing URL but the href is the GitHub repository page. If a dedicated marketplace URL exists, use it; otherwise renaming to `[Repository]` avoids misleading readers.

```suggestion
**Version: 1.14.0** · [CHANGELOG](./CHANGELOG.md) · [Repository](https://github.com/DojoCodingLabs/make-no-mistakes-toolkit)
```

Reviews (1): Last reviewed commit: "chore: align package.json + plugin.json ..." | Re-trigger Greptile

Comment thread CHANGELOG.md
Comment on lines +21 to +38
## [1.14.0] - 2026-05-14

### Added
- Atomic-design enforcement hooks: `hooks/atomic/pre-atomic.sh`,
`hooks/atomic/post-atomic-drift.sh` — per-repo PreToolUse + PostToolUse
enforcement to prevent atomic-design ownership drift across pillars
(DOJ-4064 Cure 4b, cross-repo cure).
- Schema: `schemas/atomic-design-rules.schema.json`.
- Slash command: `/make-no-mistakes:atomic-rules-init` for bootstrapping
atomic-design rules in a target repo.
- New keywords on `plugin.json` + `marketplace.json`: `atomic-design`,
`ownership-enforcement`.

### Changed
- `package.json` `files` array now ships `schemas/` and `references/` so the
hooks framework has everything it needs at install time.
- Bumped `plugin.json` 1.11.0 → 1.14.0 and `marketplace.json` 1.12.0 → 1.14.0
to align with `package.json` (pre-existing drift between the three manifests).
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Version 1.14.0 entry documents uncommitted features

All four manifests are bumped to 1.14.0 in this PR, but every functional artifact the CHANGELOG attributes to that version — hooks/atomic/pre-atomic.sh, hooks/atomic/post-atomic-drift.sh, schemas/atomic-design-rules.schema.json, and the /make-no-mistakes:atomic-rules-init command — does not exist in the repository at this commit. Anyone who installs from main after this merges will receive a package that self-identifies as 1.14.0 but is missing all of its advertised features, and the package.json files array entry for schemas/ will silently ship an empty directory. A safer sequencing: keep all manifests at 1.12.0 here and do the version bump in the companion functional PR, or convert the 1.14.0 entry to [Unreleased] and promote it only when the functional PR lands.

Prompt To Fix With AI
This is a comment left during a code review.
Path: CHANGELOG.md
Line: 21-38

Comment:
**Version 1.14.0 entry documents uncommitted features**

All four manifests are bumped to `1.14.0` in this PR, but every functional artifact the CHANGELOG attributes to that version — `hooks/atomic/pre-atomic.sh`, `hooks/atomic/post-atomic-drift.sh`, `schemas/atomic-design-rules.schema.json`, and the `/make-no-mistakes:atomic-rules-init` command — does not exist in the repository at this commit. Anyone who installs from `main` after this merges will receive a package that self-identifies as `1.14.0` but is missing all of its advertised features, and the `package.json` `files` array entry for `schemas/` will silently ship an empty directory. A safer sequencing: keep all manifests at `1.12.0` here and do the version bump in the companion functional PR, or convert the `1.14.0` entry to `[Unreleased]` and promote it only when the functional PR lands.

How can I resolve this? If you propose a fix, please make it concise.

Comment thread CHANGELOG.md
Comment on lines +51 to +52
### Skipped
- `1.13.0` — intentionally skipped, no commit ever carried this number.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 ### Skipped is not a valid Keep a Changelog sub-heading type

The Keep a Changelog spec (v1.1.0, which this file claims to follow) defines exactly six section types: Added, Changed, Deprecated, Removed, Fixed, Security. ### Skipped is non-standard and may confuse changelog parsers. The information is already in the reconstruction note at the top of the file, so this sub-section is redundant.

Suggested change
### Skipped
- `1.13.0` — intentionally skipped, no commit ever carried this number.
<!-- 1.13.0 was intentionally skipped — no commit ever carried that number. See the reconstruction note at the top of this file. -->
Prompt To Fix With AI
This is a comment left during a code review.
Path: CHANGELOG.md
Line: 51-52

Comment:
**`### Skipped` is not a valid Keep a Changelog sub-heading type**

The Keep a Changelog spec (v1.1.0, which this file claims to follow) defines exactly six section types: Added, Changed, Deprecated, Removed, Fixed, Security. `### Skipped` is non-standard and may confuse changelog parsers. The information is already in the reconstruction note at the top of the file, so this sub-section is redundant.

```suggestion
<!-- 1.13.0 was intentionally skipped — no commit ever carried that number. See the reconstruction note at the top of this file. -->
```

How can I resolve this? If you propose a fix, please make it concise.

Comment thread README.md
@@ -1,5 +1,7 @@
# make-no-mistakes

**Version: 1.14.0** · [CHANGELOG](./CHANGELOG.md) · [Marketplace](https://github.com/DojoCodingLabs/make-no-mistakes-toolkit)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 [Marketplace] link resolves to the GitHub repo, not the Claude Code marketplace

The label implies a marketplace listing URL but the href is the GitHub repository page. If a dedicated marketplace URL exists, use it; otherwise renaming to [Repository] avoids misleading readers.

Suggested change
**Version: 1.14.0** · [CHANGELOG](./CHANGELOG.md) · [Marketplace](https://github.com/DojoCodingLabs/make-no-mistakes-toolkit)
**Version: 1.14.0** · [CHANGELOG](./CHANGELOG.md) · [Repository](https://github.com/DojoCodingLabs/make-no-mistakes-toolkit)
Prompt To Fix With AI
This is a comment left during a code review.
Path: README.md
Line: 3

Comment:
**`[Marketplace]` link resolves to the GitHub repo, not the Claude Code marketplace**

The label implies a marketplace listing URL but the href is the GitHub repository page. If a dedicated marketplace URL exists, use it; otherwise renaming to `[Repository]` avoids misleading readers.

```suggestion
**Version: 1.14.0** · [CHANGELOG](./CHANGELOG.md) · [Repository](https://github.com/DojoCodingLabs/make-no-mistakes-toolkit)
```

How can I resolve this? If you propose a fix, please make it concise.

@lapc506 lapc506 self-assigned this May 14, 2026
@lapc506 lapc506 merged commit c094e31 into main May 14, 2026
1 check passed
@lapc506 lapc506 deleted the andres/toolkit-readme-version-and-changelog branch May 14, 2026 15:06
lapc506 added a commit that referenced this pull request May 14, 2026
Warns when a version manifest (package.json, plugin.json, marketplace.json,
or their .claude-plugin/ namespaced variants) is being bumped without a
parallel update to README.md + CHANGELOG.md.

This closes the gap PR #21 exposed: the toolkit shipped 1.1.0 -> 1.14.0
with no visible version surface (no README line, no CHANGELOG, no git tags).
Without an enforcement rule, the same drift will reappear on the next bump.

Pattern (DOJ-4064 three-layer drift thesis, Cure 4 - PreToolUse hooks):

  - Triggers on Write/Edit/MultiEdit to package.json, plugin.json,
    marketplace.json, .claude-plugin/plugin.json, .claude-plugin/marketplace.json
  - Detects new `"version": "X.Y.Z"` field in the written content / new_string
  - Warns the agent to update README.md "Version:" line + CHANGELOG.md entry
    in the same change
  - Tier 2 (warn, non-blocking) - hook cannot see other files in the diff,
    so it nudges rather than enforces
  - Bypass marker: version-readme-changelog-sync

Sister enforcement (defense-in-depth): the dojo-os repo ships its own
PostToolUse hook (.claude/hooks/post-write-version-readme-sync.sh) that
catches the same drift locally even when the toolkit isn't installed.

11 new tests, all pass. Total rules: 32 (was 31).

Created by Claude Code on behalf of @andres.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
lapc506 added a commit that referenced this pull request May 14, 2026
…e-in-depth ↔ dojo-os) (#22)

* feat(rules): add warn-version-readme-changelog-sync Tier 2 rule

Warns when a version manifest (package.json, plugin.json, marketplace.json,
or their .claude-plugin/ namespaced variants) is being bumped without a
parallel update to README.md + CHANGELOG.md.

This closes the gap PR #21 exposed: the toolkit shipped 1.1.0 -> 1.14.0
with no visible version surface (no README line, no CHANGELOG, no git tags).
Without an enforcement rule, the same drift will reappear on the next bump.

Pattern (DOJ-4064 three-layer drift thesis, Cure 4 - PreToolUse hooks):

  - Triggers on Write/Edit/MultiEdit to package.json, plugin.json,
    marketplace.json, .claude-plugin/plugin.json, .claude-plugin/marketplace.json
  - Detects new `"version": "X.Y.Z"` field in the written content / new_string
  - Warns the agent to update README.md "Version:" line + CHANGELOG.md entry
    in the same change
  - Tier 2 (warn, non-blocking) - hook cannot see other files in the diff,
    so it nudges rather than enforces
  - Bypass marker: version-readme-changelog-sync

Sister enforcement (defense-in-depth): the dojo-os repo ships its own
PostToolUse hook (.claude/hooks/post-write-version-readme-sync.sh) that
catches the same drift locally even when the toolkit isn't installed.

11 new tests, all pass. Total rules: 32 (was 31).

Created by Claude Code on behalf of @andres.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* chore: bump to 1.15.0 across manifests + README

Coordinated bump across the four version surfaces:
  - package.json                       1.14.0 -> 1.15.0
  - .claude-plugin/plugin.json         1.14.0 -> 1.15.0
  - .claude-plugin/marketplace.json    1.14.0 -> 1.15.0 (top + nested)
  - README.md "Version: ..." line      1.14.0 -> 1.15.0

This is the first bump that dogfoods the warn-version-readme-changelog-sync
rule shipped in the prior commit on this branch: every manifest write would
now warn about the README/CHANGELOG update requirement. README is being
updated in this same commit; CHANGELOG entry follows in the next commit.

Created by Claude Code on behalf of @andres.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* docs(changelog): add 1.15.0 entry (dogfooding the new rule)

Adds the 1.15.0 section to CHANGELOG.md immediately above the existing
1.14.0 entry, documenting:

  - The new warn-version-readme-changelog-sync Tier 2 rule (32 rules total)
  - The defense-in-depth pattern (toolkit + dojo-os parallel PRs)
  - The dogfooding observation: this release ships via the rule it adds

This is the third atomic commit of the PR:
  1. feat(rules): add the rule (commit 5dd0a67)
  2. chore: bump to 1.15.0 across manifests + README (commit c9469f0)
  3. docs(changelog): add 1.15.0 entry (this commit)

Together they demonstrate the full discipline the rule enforces:
manifest + README + CHANGELOG all updated in lockstep within the same PR.

Created by Claude Code on behalf of @andres.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant